/*
 * 依赖JSON对象（json2.js）
 * Created: 2012-04-27
 * sam.huang
 */
var isIpad = isAppleIpad();
var LOG={
	level:0,	
	DEBUG:0,
	INFO:1,
	WARN:2,
	ERROR:3,
	FATAL:4,
	LOG:1
};

function isAppleIpad() {
	return (navigator.platform.indexOf('iPad') != -1);
};

function log(string, obj) {
	if(LOG.level > LOG.INFO)return;
	if (typeof obj == "undefined") {
		console.log(string);
	} else if (isIpad) {
		console.log(string + " " + objInfo(obj));
	} else {
		console.log(string, obj);
	}
}

function debug(string, obj) {
	if(LOG.level > LOG.DEBUG)return;
	if (typeof obj == "undefined") {
		console.debug(string);
	} else if (isIpad) {
		console.debug(string + " " + objInfo(obj));
	} else {
		console.debug(string, obj);
	}
}

function info(string, obj) {
	if(LOG.level > LOG.INFO)return;
	if (typeof obj == "undefined") {
		console.info(string);
	} else if (isIpad) {
		console.info(string + " " + objInfo(obj));
	} else {
		console.info(string, obj);
	}
}

function group(string, obj) {
	if (typeof obj == "undefined") {
		console.group(string);
	} else if (isIpad) {
		console.info("!-------");
	} else {
		console.group(string, obj);
	}
}

function groupEnd() {
	if (isIpad) {
		console.info("-------!");
	} else {
		console.groupEnd();
	}
}

function warn(string, obj) {
	if(LOG.level > LOG.WARN)return;
	if (typeof obj == "undefined") {
		console.warn(string);
	} else if (isIpad) {
		console.warn(string + " " + objInfo(obj));
	} else {
		console.warn(string, obj);
	}
}

function error(string, obj) {
	if(LOG.level > LOG.ERROR)return;
	if (typeof obj == "undefined") {
		console.error(string);
	} else if (isIpad) {
		console.error(string + " " + objInfo(obj));
	} else {
		console.error(string, obj);
	}
}

function log(string, obj) {
	if(LOG.level > LOG.LOG)return;
	if (typeof obj == "undefined") {
		console.log(string);
	} else if (isIpad) {
		console.log(string + " " + objInfo(obj));
	} else {
		console.log(string, obj);
	}
}

function objInfo(obj) {
	if(isIpad && obj instanceof window.Element)return obj;
	switch (typeof obj) {
	case "undefined":
		return;
	case "object":
		return JSON.stringify(obj);
	case "array":
		return JSON.stringify(obj);
	case "function":
		return obj;
	default:
		return obj;
	}
}